package ar.edu.utn.frba.disenio.model;

import java.util.ArrayList;
import java.util.List;

public abstract class Vuelo {
	
	private static List<Object[]> vuelosPopulares = new ArrayList<Object[]>();
	protected abstract String getCodigoVuelo();
	public abstract Long getTiempoDeVuelo();
	
	public Integer getPopularidad(){
		return Vuelo.getPopularidad(this.getCodigoVuelo());
	}
	
	public static void resetVuelosPopulares(){
		vuelosPopulares = new ArrayList<Object[]>();
	}
	
	public static void incrementarPopularidad(String codVuelo){
		Object[] vueloHallado = null;
		for(Object[] vuelo : getVuelosPopulares()){
			if (vuelo[0].equals(codVuelo)){
				vuelo[1] = (Integer)vuelo[1] + 1;
				vueloHallado = vuelo;
			}
		}
		
		if(vueloHallado == null) crearVuelo(codVuelo);
	}
	
	public static Integer getPopularidad(String codVuelo){
		for(Object[] vuelo : getVuelosPopulares()){
			if (vuelo[0].equals(codVuelo)){
				return (Integer) vuelo[1];
			}
		}
		return 0;
	}

	private static void crearVuelo(String codVuelo) {
		Object[] nuevoVuelo = {codVuelo, (Integer)1};
		getVuelosPopulares().add(nuevoVuelo);
	}
	
	public static List<Object[]> getVuelosPopulares() {
		return vuelosPopulares;
	}
	
}
